﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using FirebirdSql.Data.FirebirdClient;
using Estrutura;


namespace Banco
{

    public class BD_Equipamento_unidade
    {
        #region variaveis_globais

        acessaDB.conectaDBFireBird fireBird = new conectaDBFireBird();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_Equipamento_unidade()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
        }
        public BD_Equipamento_unidade(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public DataSet _retorna_Equipamento_unidade(
                                                string CEU_MEDIA_UTILIZACAO,
                                                string CTM_EQUIPAMENTO_UNIDADE_ID,
                                                string EQUIPAMENTO_ID,
                                                string CTM_UNIDADE_MEDIDA_ID,
                                                string CTM_FORMULA_ID
                                                )
        {

            if (string.IsNullOrEmpty(CEU_MEDIA_UTILIZACAO)) CEU_MEDIA_UTILIZACAO = "'0'";
            if (string.IsNullOrEmpty(CTM_EQUIPAMENTO_UNIDADE_ID)) CTM_EQUIPAMENTO_UNIDADE_ID = "'0'";
            if (string.IsNullOrEmpty(EQUIPAMENTO_ID)) EQUIPAMENTO_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_UNIDADE_MEDIDA_ID)) CTM_UNIDADE_MEDIDA_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_FORMULA_ID)) CTM_FORMULA_ID = "'0'";

            string sql = "SELECT " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CEU_MEDIA_UTILIZACAO, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_EQUIPAMENTO_UNIDADE_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.EQUIPAMENTO_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_UNIDADE_MEDIDA_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_FORMULA_ID " +
                            "FROM CTM_EQUIPAMENTO_UNIDADE " +
                            "WHERE " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CEU_MEDIA_UTILIZACAO            = " + CEU_MEDIA_UTILIZACAO + "  OR " + CEU_MEDIA_UTILIZACAO + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CTM_EQUIPAMENTO_UNIDADE_ID      = " + CTM_EQUIPAMENTO_UNIDADE_ID + "  OR " + CTM_EQUIPAMENTO_UNIDADE_ID + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.EQUIPAMENTO_ID                  = " + EQUIPAMENTO_ID + "  OR " + EQUIPAMENTO_ID + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CTM_UNIDADE_MEDIDA_ID           = " + CTM_UNIDADE_MEDIDA_ID + "  OR " + CTM_UNIDADE_MEDIDA_ID + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CTM_FORMULA_ID                  = " + CTM_FORMULA_ID + "  OR " + CTM_FORMULA_ID + " = '0') ";

            DataSet dsRetorno = fireBird.retornaDataSet(sql, conectionString);
            return dsRetorno;

        }


        public List<ES_Equipamento_unidade> _obter_Equipamento_unidade(
                                                string CEU_MEDIA_UTILIZACAO,
                                                string CTM_EQUIPAMENTO_UNIDADE_ID,
                                                string EQUIPAMENTO_ID,
                                                string CTM_UNIDADE_MEDIDA_ID,
                                                string CTM_FORMULA_ID
                                                )
        {

            if (string.IsNullOrEmpty(CEU_MEDIA_UTILIZACAO)) CEU_MEDIA_UTILIZACAO = "'0'";
            if (string.IsNullOrEmpty(CTM_EQUIPAMENTO_UNIDADE_ID)) CTM_EQUIPAMENTO_UNIDADE_ID = "'0'";
            if (string.IsNullOrEmpty(EQUIPAMENTO_ID)) EQUIPAMENTO_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_UNIDADE_MEDIDA_ID)) CTM_UNIDADE_MEDIDA_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_FORMULA_ID)) CTM_FORMULA_ID = "'0'";

            string sql = "SELECT " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CEU_MEDIA_UTILIZACAO, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_EQUIPAMENTO_UNIDADE_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.EQUIPAMENTO_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_UNIDADE_MEDIDA_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_FORMULA_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CEU_VALOR_INICIAL " +
                            "FROM CTM_EQUIPAMENTO_UNIDADE " +
                            "WHERE " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CEU_MEDIA_UTILIZACAO            = " + CEU_MEDIA_UTILIZACAO + "  OR " + CEU_MEDIA_UTILIZACAO + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CTM_EQUIPAMENTO_UNIDADE_ID      = " + CTM_EQUIPAMENTO_UNIDADE_ID + "  OR " + CTM_EQUIPAMENTO_UNIDADE_ID + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.EQUIPAMENTO_ID                  = " + EQUIPAMENTO_ID + "  OR " + EQUIPAMENTO_ID + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CTM_UNIDADE_MEDIDA_ID           = " + CTM_UNIDADE_MEDIDA_ID + "  OR " + CTM_UNIDADE_MEDIDA_ID + " = '0') AND " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CTM_FORMULA_ID                  = " + CTM_FORMULA_ID + "  OR " + CTM_FORMULA_ID + " = '0') ";

            List<ES_Equipamento_unidade> lista = new List<ES_Equipamento_unidade>();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Equipamento_unidade item = new ES_Equipamento_unidade();
                    item.CEU_MEDIA_UTILIZACAO = dr["CEU_MEDIA_UTILIZACAO"].ToString();
                    item.CTM_EQUIPAMENTO_UNIDADE_ID = dr["CTM_EQUIPAMENTO_UNIDADE_ID"].ToString();
                    item.EQUIPAMENTO_ID = dr["EQUIPAMENTO_ID"].ToString();
                    item.CTM_UNIDADE_MEDIDA_ID = dr["CTM_UNIDADE_MEDIDA_ID"].ToString();
                    item.CTM_FORMULA_ID = dr["CTM_FORMULA_ID"].ToString();
                    item.CEU_VALOR_INICIAL = dr["CEU_VALOR_INICIAL"].ToString();
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }


        public ES_Equipamento_unidade _obter_Equipamento_unidade_by_id(
                                                string CTM_EQUIPAMENTO_UNIDADE_ID
                                                )
        {

            if (string.IsNullOrEmpty(CTM_EQUIPAMENTO_UNIDADE_ID)) CTM_EQUIPAMENTO_UNIDADE_ID = "'0'";

            string sql = "SELECT " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CEU_MEDIA_UTILIZACAO, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_EQUIPAMENTO_UNIDADE_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.EQUIPAMENTO_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_UNIDADE_MEDIDA_ID, " +
                                  "CTM_EQUIPAMENTO_UNIDADE.CTM_FORMULA_ID " +
                            "FROM CTM_EQUIPAMENTO_UNIDADE " +
                            "WHERE " +
                            "      (CTM_EQUIPAMENTO_UNIDADE.CTM_EQUIPAMENTO_UNIDADE_ID = " + CTM_EQUIPAMENTO_UNIDADE_ID + "  OR " + CTM_EQUIPAMENTO_UNIDADE_ID + " = '0') ";

            ES_Equipamento_unidade item = new ES_Equipamento_unidade();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    item.CEU_MEDIA_UTILIZACAO = dr["CEU_MEDIA_UTILIZACAO"].ToString();
                    item.CTM_EQUIPAMENTO_UNIDADE_ID = dr["CTM_EQUIPAMENTO_UNIDADE_ID"].ToString();
                    item.EQUIPAMENTO_ID = dr["EQUIPAMENTO_ID"].ToString();
                    item.CTM_UNIDADE_MEDIDA_ID = dr["CTM_UNIDADE_MEDIDA_ID"].ToString();
                    item.CTM_FORMULA_ID = dr["CTM_FORMULA_ID"].ToString();

                }
                return item;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }


        public void _inserir_Equipamento_unidade(
                                                string CEU_MEDIA_UTILIZACAO,
                                                string CTM_EQUIPAMENTO_UNIDADE_ID,
                                                string EQUIPAMENTO_ID,
                                                string CTM_UNIDADE_MEDIDA_ID,
                                                string CTM_FORMULA_ID,
                                                string CEU_VALOR_INICIAL
                                                )
        {

            string sql = " INSERT INTO CTM_EQUIPAMENTO_UNIDADE " +
                         "      ( " +
                         "          CEU_MEDIA_UTILIZACAO           , " +
                         "          EQUIPAMENTO_ID                 , " +
                         "          CTM_UNIDADE_MEDIDA_ID          , " +
                         "          CTM_FORMULA_ID                 ,  " +
                         "          CEU_VALOR_INICIAL                 " +
                         "      )" +
                         "  VALUES " +
                         "      ( " +
                                      Util.retonarNull(CEU_MEDIA_UTILIZACAO) + ", " +
                                      Util.retonarNull(EQUIPAMENTO_ID) + ", " +
                                      Util.retonarNull(CTM_UNIDADE_MEDIDA_ID) + ", " +
                                      Util.retonarNull(CTM_FORMULA_ID) + ", " +
                                      Util.retonarNull(CEU_VALOR_INICIAL) +
                         "      )";
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }


        }



        public void _atualizar_Equipamento_unidade(
                                                string CEU_MEDIA_UTILIZACAO,
                                                string CTM_EQUIPAMENTO_UNIDADE_ID,
                                                string EQUIPAMENTO_ID,
                                                string CTM_UNIDADE_MEDIDA_ID,
                                                string CTM_FORMULA_ID,
                                                string CEU_VALOR_INICIAL
                                                )
        {

            string sql = " UPDATE CTM_EQUIPAMENTO_UNIDADE SET " +
                         "      CEU_MEDIA_UTILIZACAO            = " + Util.retonarAspas(CEU_MEDIA_UTILIZACAO, true) + ", " +
                         "      EQUIPAMENTO_ID                  = " + Util.retonarAspas(EQUIPAMENTO_ID, true) + ", " +
                         "      CTM_UNIDADE_MEDIDA_ID           = " + Util.retonarAspas(CTM_UNIDADE_MEDIDA_ID, true) + ", " +
                         "      CTM_FORMULA_ID                  = " + Util.retonarAspas(CTM_FORMULA_ID, true) +
                         " WHERE CTM_EQUIPAMENTO_UNIDADE_ID =  " + CTM_EQUIPAMENTO_UNIDADE_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _excluir_Equipamento_unidade(string CTM_EQUIPAMENTO_UNIDADE_ID)
        {
            string sql = "DELETE FROM CTM_EQUIPAMENTO_UNIDADE WHERE CTM_EQUIPAMENTO_UNIDADE_ID = " + CTM_EQUIPAMENTO_UNIDADE_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        #endregion
    }
}
